﻿namespace Blaze.Editor.Configs
{
    using Newtonsoft.Json.Linq;

    /// <summary>
    /// 打包行为配置。
    /// </summary>
    public class BuildActionConfig
    {
        /// <summary>
        /// 获取或设置配置本身的<see cref="JObject"/>。
        /// </summary>
        public JObject JObject { get; set; }

        /// <summary>
        /// 获取或设置打包行为的名称。
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 获取指定属性的配置。
        /// </summary>
        /// <typeparam name="T">配置类型</typeparam>
        /// <param name="key">属性名称</param>
        /// <returns></returns>
        public T Get<T>(string key)
        {
            var value = JObject[key];
            if (value == null)
                return default(T);
            return value.ToObject<T>();
        }
    }
}